package com.bytezero.exer;
 /**
  * 
  * @Description 
  * @author  Bytezero·zhenglei!      Email:420498246@qq.com
  * @version
  * @date 2021年9月12日上午9:06:47
  * @
  *   对象数组题目
  * 定义类：Student,包含三个属性：学号number(int),年级state(int),
  *   成绩score(int)
  * 创建20个学生对象，学号为1-20，年级和成绩都有随机数确定
  * 问题一：打印出3年级（state值为3）的学生信息
  * 问题二：使用冒泡排序按学生成绩排序，并遍历所有学生信息
  * 
  *  提示：生成随机数 Math.random(),返回值double
  *        四舍五入取整数：Math.round(double d),返回值类型long
  */
public class StudentTest
{
	public static void main(String[] args)
	{
		//声明Student类型的数组
		Student[] stus = new Student[20];
		for(int i =0; i <stus.length;i++)
		{
			//给数组元素赋值
			stus[i] = new Student();
			//给student对象的属性赋值
			stus[i].number= (i+1);
			//要求年级[1-6]
			stus[i].state =(int)(Math.random()*(6-1+1)+1);
			//成绩 [0-100]
			stus[i].score = (int)(Math.random()*(100-0+1)+0);
		}
		
		//遍历学生数组
		for(int i =0; i <stus.length; i++)
		{
			//System.out.println(stus[i].number+"\t"+stus[i].score+"\t"+stus[i].state);
				
			System.out.println(stus[i].info());
		}
		
		System.out.println("******************************************");
		//问题一：打印出3年级（state值为3）的学生信息
		for(int i = 0; i <stus.length;i++)
		{
			if(stus[i].state==3)
			{
				System.out.println(stus[i].info());
			}
		
		}
		
		 //问题二：使用冒泡排序按学生成绩排序，并遍历所有学生信息
		System.out.println("******************************************");
		System.out.println( "问题二：使用冒泡排序按学生成绩排序，并遍历所有学生信息");
	
	   for(int i =0;i <stus.length-1;i++)
	   {
		   for(int j =0;j<stus.length-1-i;j++)
		   {
			   if(stus[j].score>stus[j+1].score)
			   {
				   //交换的是数组的元素：Student对象！！！
				   Student temp = stus[j];
				   stus[j] = stus[j+1];
				   stus[j+1] = temp;
			   }
		   }
	   }
	
	 //遍历学生数组
	for(int i =0; i <stus.length; i++)
	{
		//System.out.println(stus[i].number+"\t"+stus[i].score+"\t"+stus[i].state);
			
		System.out.println(stus[i].info());
	}
	
	
	}
}

class Student
{
	int number;   //学号
	int state;	  //年级
	int score;    //成绩
	
	
	//显示学生信息的方法
	public String info()
	{
		return"学号:"+number+"\t年级:"+state+"\t成绩:"+score;
	}
	
}






















